﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CBE.Model;
using Common.DataAccess;
using Microsoft.Data.Extensions;

namespace CBE.DataAccess
{
    public class ReporteAuditoriaServiciosDataAccess : GenericReportDataAccess<ReporteAuditoriaServiciosView, ReporteAuditoriaServiciosCriteria, CBEEntities>
    {
        public override List<ReporteAuditoriaServiciosView> ReadViewsByCriteria(ReporteAuditoriaServiciosCriteria criteriaEntity)
        {
            var listOfVentas = ObjectContext.CreateStoreCommand("ReporteAuditoriaServicios", System.Data.CommandType.StoredProcedure,
                new System.Data.SqlClient.SqlParameter("@pCodigo", String.IsNullOrEmpty(criteriaEntity.Codigo) ? String.Empty : criteriaEntity.Codigo),
                new System.Data.SqlClient.SqlParameter("@pDescripcion", String.IsNullOrEmpty(criteriaEntity.Descripcion) ? String.Empty : criteriaEntity.Descripcion))
                .Materialize<ReporteAuditoriaServiciosView>(r => new ReporteAuditoriaServiciosView
                {
                    ID = r.Field<Guid>("ID"),
                    Codigo = r.Field<String>("Codigo"),
                    Descripcion = r.Field<String>("Descripcion"),
                    Precio = r.Field<Decimal>("Precio"),
                    DuracionAproximada = r.Field<TimeSpan>("DuracionAproximada"),
                    Fecha_Accion = r.Field<DateTime>("Fecha_Accion"),
                    Usuario_Accion = r.Field<String>("Usuario_Accion"),
                    Tipo_Accion = r.Field<String>("Tipo_Accion"),
                });

            return listOfVentas.ToList();
        }
    }
}
